INSHack2019-Passthru*

ZJ Lv100

[INSHack2019]Passthru*

前言

出自BUUCTF 练习场,也有相关的配套课本(我看的是《CTF实战 从入门到提升》,感觉还行,但有不少细节感觉还是得查资料才能懂)

题目

打开靶场,会给一个压缩包的附件,另存为下来

image-20240924004037726

打开会看到两个文件,sslkey.logcapture.pcap,一看就是和TLS流量分析有关的

wireshark

wireshark 打开并导入sslkey.log

image-20240923213905847

image-20240923213909476

打开追踪流可以看到有GET请求中的kcahsni参数很奇怪,而kcahsni正是靶场inshack的逆序,则说明这里面一定有隐藏信息

image-20240924004633777

过滤查找看看

1
http.request.uri.query.parameter contains "kcahsni"

image-20240924004820395

可以看到有很多流量包

tshark

这里用kali自带的tshark导出指定内容

参数说明

1
2
3
4
5
6
7
-r 指定流量包文件

-o 首选项导入sslkey.log文件

-Y 设置显示过滤器

-T,-e 结合打印指定内容

导出代码

1
tshark -r capture.pcap -o 'tls.keylog_file:sslkey.log' -Y 'http.request.uri.query.parameter contains "kcahsni"' -T fields -e http.request.uri.query.parameter > query.txt

py脚本

写一个小脚本将kcahsni值导出来

1
2
3
4
5
6
from urllib.parse import unquote
import re
with open("query.txt", "r") as f:
data = unquote(f.read()) #将值以url编码
rlist=re.findall(r'kcahsni=(.*?),', data) #正则匹配所有kcahsni值
print(bytes.fromhex("".join(rlist))[::-1]) #将值转换为16进制拼接起来并逆序输出

执行脚本就可以将值嵌套起来然后逆序得到flag啦!

image-20240924010331926

总结

算是一个综合题,其中的python脚本是书上给的(别问,问就是不会),难点还是在于最开始分析出异常那一块,多练练题感受吧,我也得刷题去了ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘

题目在这里

  • Title: INSHack2019-Passthru*
  • Author: ZJ
  • Created at : 2024-09-23 00:00:00
  • Updated at : 2025-01-17 01:55:49
  • Link: https://blog.overlordzj.cn/2024/09/23/ctf/writeup/misc/buuctf/[INSHack2019]Passthru/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments